 /*******************************************************************************
  * Copyright (c) 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.update.internal.core;

 import java.io.File ;
 import java.io.IOException ;
 import java.io.InputStream ;
 import java.net.URL ;
 import java.util.jar.JarFile ;
 import java.util.zip.ZipEntry ;

 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.update.core.JarContentReference;
 import org.eclipse.update.core.model.FeatureModel;
 import org.xml.sax.SAXException ;

 public class Digest {
     
     private URL source;
     private File localSource;
     private JarFile digestJar;
     private InputStream inputStream;
     

     public Digest(URL source){
         this.source = source;
     }
     
     public FeatureModel[] parseDigest() throws IOException , CoreException, SAXException {
         DigestContentProvider digestContentProvider = new DigestContentProvider(source);
         localSource = digestContentProvider.asLocalReference(new JarContentReference( null, source), null).asFile();
         digestJar = new JarFile (localSource);
         
         ZipEntry digestEntry = digestJar.getEntry("digest.xml"); //$NON-NLS-1$

         if (digestEntry != null) {
             inputStream = digestJar.getInputStream(digestEntry);
             DigestParser digest = new DigestParser();
             digest.init(new LiteFeatureFactory());
             return digest.parse(inputStream);
         } else {
             throw new CoreException(null);
         }
     }

 }

